package a02ooppolymorphismDemo;

public class Text {
    public static void main(String[] args) {
        Animal a = new Dog();
        //此处体现了多态调用成员的特点
        //调用成员变量,编译看左边,运行也看左边
        //指在运行时,先去左边的父类中查找是否有name变量,如果有,则运行左边的输出,如果没有,则编译失败
        System.out.println(a.name);
        //此处体现了多态调用成员的特点
        //调用成员方法,编译看左边,运行看右边
        //指在编译时,先看左边父类中有没有show方法,有,则编译通过,如果没用,则编译失败
        a.show();
    }
}

class Animal {
    String name = "动物";

    public void show() {
        System.out.println("动物-----show");
    }
}

class Dog extends Animal {
    String name = "狗";

    @Override
    public void show() {
        System.out.println("狗-----show");
    }
}

class Cat extends Animal {
    String name = "猫";

    @Override
    public void show() {
        System.out.println("猫-----show");
    }
}